
#ifndef UCDB_OBJECTCONTEXTMANAGER_H
#define UCDB_OBJECTCONTEXTMANAGER_H

#pragma once

#include "zacdb.h"
#include "zdbmain.h"
#include "zAcString.h"

class UcDbObjectContextCollection;
class UcDbObjectContext;
class UcDbImpObjectContextManager;

#pragma pack (push, 8)

class UcDbObjectContextManager: public UcRxObject
{
public:
    UCRX_DECLARE_MEMBERS(UcDbObjectContextManager);
    UcDbObjectContextManager();
    virtual ~UcDbObjectContextManager();
    Ucad::ErrorStatus registerContextCollection(
                                  const UcString&              collectionName,
                                  UcDbObjectContextCollection* pCollection);
    Ucad::ErrorStatus unregisterContextCollection(
                                  const UcString& collectionName);
    UcDbObjectContextCollection* const contextCollection(
                                  const UcString& collectionName) const;

private:
    UcDbImpObjectContextManager* mpImp;

    friend class UcDbContextDataSubManager;
};

#pragma pack (pop)

#endif
